package ninth.线程的生命周期;

//既然上面的3个方法不能使用，则如何停止一个线程的执行呢？
//在多线程的开发中可以通过设置标志位的方式停止一个线程的运行

class MyThread implements Runnable{
    private boolean flag =true;    //定义标志属性
    @Override
    public void run() {
        int i = 0;
        while (this.flag){
            while (true){
                System.out.println(Thread.currentThread().getName()+" i="+(i++));
            }
        }
    }
    public void stop(){
        this.flag=false;
    }
}

public class 停止线程执行 {
    public static void main(String[] args) {
        MyThread mt = new MyThread();
        Thread t = new Thread(mt,"线程");
        t.start();
        mt.stop();

    }

}
/**
 * 上面的程序一旦调用stop方法就会将flag变量设置成flase 因此run方法就会停止运行，这种停止方式在开发中常用
 */